That would work for your first use of a time waster, but not for repeated uses, unless you self-enforce to shut down and restart your VMware between uses. That doesn't buy much in terms of willpower, though it could be useful if rebooting disrupts your work environment.
It's no different than the "analog" method - you still have to self-enforce rebooting every time.
An issue might be that VMs (at least the ones I have) boot significantly faster than my real PC, which harms the disincentive.
The alt text of today's xkcd reads:
Anyone have ideas about how to implement this? On Firefox one can always use LeechBlock. On *nix systems there would be a number of ways of implementing this, but not all of us use that OS or have the necessary savvy.
(I'm kind of surprised no one's made a discussion post on this yet.)