From what it sounds like, you have both the service and client in the same executable. While this can be done, when you want them on separate machines you need to have an executable/host for the service (either self hosted, or in IIS) and an executable for the client. Each will need to be properly configured with the address, binding, and contract in the appropriate configuration section for it. So on the server you'd have something like this:
<configuration>
<system.serviceModel>
<services>
<service name="YourService">
<endpoint address="http://MyServer:8000/..."
binding="BasicHttpBinding"
contract="Your.IContract" />
</service>
</services>
</system.serviceModel>
</configuration>
And on the client you'd have this:
<configuration>
<system.serviceModel>
<client>
<endpoint address="http://MyServer:8000/..."
binding="BasicHttpBinding"
contract="Your.IContract"
name="ClientEndpoint" />
</client>
</system.serviceModel>
</configuration>
The main thing is to make sure that the client and server can communicate with each other over the specified port and protocol (primarily making sure a firewall isn't blocking communication). The other thing to be aware of is changing your binding protocol may impact other aspects of your service (security is a big one, but also what you can and cannot do with the service).