You can set up an application pool to start automatically but the worker process (w3wp.exe) will actually be launched once a request is made to the web site. However, in some scenarios you may want to have a worker process started automatically whenever an application pool starts. This is useful especially if a worker process launches slow for some reason.
To do that you can set startMode attribute of an application pool to AlwaysRunning in your applicationHost.config. For example:
<add name="Default App Pool" startMode="AlwaysRunning" />
IIS 7.5 or newer.