I don't think there's a built in feature in VMWare to protect virtual machines (I might be wrong). However you can bind your linux installation (or installed software) to the machine UUID that you can get by (as super user):
cat /sys/devices/virtual/dmi/id/product_uuid
In real machines (not virtual) this information is written in the hardware and cannot be changed and uniquely identifies your computer.
I don't know how virtual machines generates this. It could be bound in some way to the hosting real machine (in this case it will change when running to virtual machiene to another host) or it could be written somewhere in the virtual machine image.
My suggestion is to run that command above in the same virtual machine but running on two different hosts. If the output value changes then you can use that in some startup scripts (or even in your software) to prevent running it on other hosts.