Try breaking up projects into several milestones, where each milestone has a concrete deliverable that would be useful if they took it to another contractor.
That way, they have valuable deliverables that they can take to another developer if you end up firing the client.
That way, they have valuable deliverables that they can take to another developer if you end up firing the client.