After being a freelancer for over 10 years, my biggest tip would be never be scared to fire a client.
I have fired two clients in my carrier and although doing so were arguably the hardest decisions I made, they turned out for the best. Toxic clients are toxic. No escaping that.
I always have a kill clause in my contract that let's either party get out with some written notice and doing so kicks off payment of whatever work/milestone is done upto that point. This clause is always mandatory in all my templates and can't be removed or edited by a client when negotiating.
I think we forget sometimes that the beauty of being a freelancer/contractor is that we get to pick and choose our clients. When I'm in a interview the clients also have to wow me, I may have a few clients and need to pick which project I'll work on next, so my time is valuable so what about this client will want me to take on the job.
I akin it to a lawyer hearing your case and deciding to represent you.
I realize that having many clients or projects isn't always the situation but taking a toxic client because you need it will probably do more damage than good, so I'd always ask myself do I really need this project and it's headache?
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.