2. Ask for a portion of money upfront as soon as you get the ok from your client to start work. (1/3 - 1/2) I usually do this after making an estimate and sometimes a full proposal, really depends on the client's needs and the size of the project. Let them know in the estimate (before you ask for up front money) that you will be asking for it when you get the ok to start.
Long term clients that pay well I don't ask for anything up front anymore, as they always pay on time with no hassles. Some clients (that I won't work with anymore) I charged 100% up front, as they had taken advantage of me in the past. (I no longer work with them)
3. You may end up with a client that makes your life so miserable you just want to quit and get a job and fast food place. Find a way to politely end your work with these clients, unless you really need the money... which happens.
4. When making an estimate, break out the costs into a few sections like, minimum requirements, nice to have, extras, and dream features. Put a price on each one. This is really useful because you don't have to worry about your pricing, and you are giving your client control over how much they want to spend with you.
The worst feeling was handing a client one number, and them balking at it and now you don't get the work. Most of the time the client is happy to take on all the work. In reality they almost never do the last two unneeded bits of work because they change their minds so much, or reality with testing shows those features are needed. (depends on the type of work you are doing of course) But they will still pay for you to do it. But will likely change the budget to something more important later.
I did art, design and animation before as well, and these rules applied in the same way.
5. Much of what I do with my clients is education. Be decent, patient and helpful. They have no idea how software development works and are often confused about why some things are necessary and others aren't. After a few years, I get fewer questions and more trust.
The newer the client, the more diligent you need to be with documentation and communicating very, very clear expectations. If the client says "why didn't you do X, Y and Z?" If you expressed expectations clearly, you can show why you didn't do them in a way that is helpful to your client instead of infuriating.
6. Never start work until you get an official ok, I almost always require it in an email/writing of some kind with new clients so there is no misunderstandings. When I was starting out I have started work on a few projects thinking I was going to get paid only to get an angry response later...
7. Change orders. This is a big one... If you were careful to layout expectations, this helps both you and your client. Expectations help your client because they can hold you to what you said you would do. They help you because then if the client asks for something outside the scope of the agreed upon work, you need to get comfortable telling them "this is outside the scope of this project", and that you will need to make a new estimate for this extra work.
This is the biggest issue I've seen with new people starting work. Why? Because every single client changes their mind at some point, and you need to be ready for that.
My solution to easing clients into this change order is to tell them upfront (saying things in advance is always more helpful than in the middle of a problem) that they get say 3 changes for free after the project is finished, and any changes after that will require more payment/estimate. And any changes from the documented scope (expectations) will require an estimate.
Just put this stuff in your proposal/estimate and that will solve much of your communications/billing problems in advance. Also, it will give your client some confidence that will do what you say you will do.
There's a ton more I could add, but there are some great comments here.