Yes over the course of my thirty plus years as a trainer I have let quite a few clients go.
My suggestion for pre firing a client would be to set up a time to talk, ideally this is done during the initial consult and discuss/have a contract to sign/the terms and tolerance you as the trainer expect. Have the client read the contract out loud to you and sign it.
Currently I adore all of my clients, they are committed and totally into training, however, it wasn’t always like this!
I also suggest being very candid and upfront. Ask them why they hired you.
As for canceling, I charge up front, in advance.
Remember: you teach people how to treat you.