Create assets subfolder on upload based on entry field value?
Yes that's totally possible, you just need to set your asset field to upload all assets to a single folder and then you can set a sub-folder path that's created dynamically. (→ Restricting Uploads to a Single Folder).

In your case that path would be something like this:

assets/images/projects/{{ object.client.first().friendlyName }}


or with fallback to a default sub-folder:

{{ object.client.first()|length ? object.client.first().friendlyName : 'Other' }}