1. A computer-implemented method for restarting virtual machines, the computer-implemented method comprising: monitoring, by a computer, each server in a plurality of servers within a client virtual machine host environment via a network; responsive to the computer determining that a server failed in the plurality of servers within the client virtual machine host environment, retrieving, by the computer, a list of virtual machines that were executing in the failed server; determining, by the computer, a set of virtual machine dependency groups, in which all virtual machines of a dependency group must be started for an application to function properly, for virtual machines in the list of virtual machines based on properties corresponding to each respective virtual machine in the list of virtual machines; responsive to the computer determining a start order dependency, modifying, by the computer, virtual machine weights, within a virtual machine dependency group having the start order dependency, using priority inheritance of a virtual machine weight from a first virtual machine to a second virtual machine that is dependent upon the first virtual machine; responsive to the computer determining a virtual machine dependency group prioritization tie between a first virtual machine dependency group and a second virtual machine dependency group, resolving, by the computer, the virtual machine dependency group prioritization tie by preferring a native total weight of the first virtual machine dependency group over an inherited total weight of the second virtual machine dependency group; annotating, by the computer, virtual machine dependency groups to indicate mutual virtual machine dependency group affinity requirements that define physical placement requirements of different virtual machine dependency groups; generating, by the computer, a virtual machine restart plan that is parallelized and prioritized in which a virtual machine restart priority is based on a total weight generated for each respective virtual machine dependency group using a restart rule set and a directed graph for a selected virtual machine dependency group and the mutual virtual machine dependency group affinity requirements and is a partial ordering of all the virtual machines, which are affected by the failed server in the client virtual machine host environment, into restart priority classes; restarting, by the computer executing the virtual machine restart plan, the set of virtual machine dependency groups in parallel on a failover server of an alternate virtual machine host environment via the network; and restarting, by the computer further executing the virtual machine restart plan, virtual machines within a particular restart priority class in parallel on a respective restart queue of the set of virtual machine dependency groups on the failover server of the alternate virtual machine host environment via the network.