Is there a way to encode all your QTP scripts before sending it to the client?
Not really - QTP needs to run the test scripts unencoded so your client would need to unencode it anyway. So you could create a password protected zip file if you need to send it a bit more securely.
Here's more on the subject:
Not at the table, Carlos!