### Issue Details

* **Electron Version:**
  * 3.x, 4.x, 5.x, 6.x
* **Operating System:**
  * All
* **Last Known Working Electron version:**:
  * 2.x

### Expected Behavior
When navigations occur, a new process should be created for the navigation.

### Actual Behavior
When a navigation occurs _during_ a preloads scripts execution the same process is re-used as Chromium does not think the navigation has been committed yet.  This causes a memory leak and all native node modules to break.

### To Reproduce
Fiddle: https://gist.github.com/MarshallOfSound/c89aa0037c3da114d44aa3a2d1a0fc24

### Screenshots
![image](https://user-images.githubusercontent.com/6634592/55097842-eb45dd00-5079-11e9-99bf-d49c0d997bca.png)

As you can see here there are three navigation loads, the second and the third one actually have the same process ID (and are running in the same process)
shell/browser/atom_browser_client.cc
content::BrowserContext* browser_context,
    content::RenderFrameHost* frame_host,
    int render_process_id,
    bool is_navigation,
    bool is_download,
    const url::Origin& request_initiator,
    mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
    network::mojom::TrustedURLLoaderHeaderClientPtrInfo* header_client,
    bool* bypass_redirect_checks) {
  content::WebContents* web_contents =
      content::WebContents::FromRenderFrameHost(frame_host);
  if (!web_contents) {
    return false;
  }
  api::ProtocolNS* protocol = api::ProtocolNS::FromWrappedClass(
      v8::Isolate::GetCurrent(), web_contents->GetBrowserContext());
  if (!protocol)
    return false;
  auto proxied_receiver = std::move(*factory_receiver);
  network::mojom::URLLoaderFactoryPtrInfo target_factory_info;
  *factory_receiver = mojo::MakeRequest(&target_factory_info);
  network::mojom::TrustedURLLoaderHeaderClientRequest header_client_request;
  if (header_client)
    header_client_request = mojo::MakeRequest(header_client);
  new ProxyingURLLoaderFactory(
      protocol->intercept_handlers(), std::move(proxied_receiver),
      std::move(target_factory_info), std::move(header_client_request));