Enjoying freelancing is hard. Picking good clients is a good start. The right client is key. If you work with someone that is a terrible client, you will obviously not enjoy the work. To me a good client is something that knows what the want, pays on time, and let's you, the expert they hired, be the expert.
If I discover someone isn't a good client, I'll do my best to finish the project like we agreed on and then not work with them again.
What do I want?
The most frustrating thing is someone that doesn't know what they want. They'll constantly change the project or add things when it should be finished. If you're billing by the project instead of the hour, this is even worse.
Asking them "Why are we building this?" is a good place to start. If they can't answer quickly and clearly, run. Talking through the screens with the designer is also a good exercise. If you see big gaps in the design, then they clearly haven't thought through everything.
Sometimes you can simply ask them to do their homework and get back to when they've figured things out. In my experience, they never do. (Or in reality, say they have and still haven't.)
Oh you want to get paid?
This is hard to know up front. If you've worked with someone and they don't pay on time once or twice, fire them. As a freelancer, you count on this money. They are toying with your livelihood. That's not cool.
I always require half down up front. If they can't pay that in a timely manner, I'm out.
I know you're the expert, but I totally got this.
For some reason, most clients think they know everything already. If that were the case, they probably wouldn't need to hire you. If your client hires you to design something, make sure you have the freedom to actually design it.
I've seen too many frustrated developers and designers that are so discouraged because their client wants to use them as a human cursor and backseat run the whole thing.
This is a bit awkward to tell a client up front if you don't know them well. In practice, I usually ask them to let me do what they hired me to do if the time comes. If they don't back off, I'm out.
This is just the start to picking good clients. These are the top three things for me though. Hopefully that helps.