Fingerprinting is nearly impossible with JS and cookies disabled, which is how I casually browse. And yes i spoof my user agent. IP is their best signal, and admittedly they fall back to that. I often get ads intended for my housemates.
I assume it would be a performance disaster, but transparently running the browsing process in identical VM's would probably make fingerprinting much harder. I like the idea!
Unfortunately this is not so simple. I am using Qubes OS with disposable virtual machines and my fingerprint is always unique. Have a look at the corresponding discussion if you are interested: https://qubes-os.discourse.group/t/is-your-browser-fingerpri....