Besides changing the user another way to solve this issue is give the App Pool the WCF service is running under permissions to read the private key.
Open the certificate store for your system and find your certificate, from there choose Manage Private Keys
Inside the security setting add the app pool your WCF service is running under by adding the name IIS AppPool\App_Pool_Name_Here
(if you are on a domain be sure the location is set to the computer not the domain)
Then check the box for Read
permissions and your app should start being able to read your certificate.
NOTE: I have encountered a bug where depending on how you imported your certificate the program will still not work correctly, I have found this usually happens if you used IIS to import the certificate. If you remove the certificate and re-add it from inside the Certificates manager using the wizard built in to the manager it will often fix the issue.