title: Electron process in multithread doesn't close after error
body: <p>Situation: 
  I want to create a multithread script where I load a list of IPs + account information with a CSV. 
  I load the data and call a function where I open electron and run my nightmare script in combination with Vo. Inside the script I go to a site, loop through a list of links and check if someone lives in Australia. 
  When I have an error, for example Timeout, the browser stops working.
  Error Example -></p>
  
  <pre><code>{ message: 'navigation error',
    code: -7,
    details: 'Navigation timed out after 30000 ms',
    url: 'https://facebook.com/login' }
  </code></pre>
  
  <p>Here is my Code</p>
  
  <pre><code>var fs = require('fs');
  var csv = require('fast-csv');
  var vo = require('vo');
  var Nightmare = require('nightmare');
  
      var count = 0;
      var urls = fs.readFileSync('uniqueIds.csv').toString().split("\n");
  
      var arrayUrls = Object.keys(urls).map(function (key) {return urls[key]});
  
      var bloqNumber = 0;
      function *run(proxy, user, pass, urlsID) {
          var nightmare = new Nightmare({ 
              webPreferences: { partition: 'your-custom-partition'},
              switches:{
              'proxy-server': proxy,
              'ignore-certificate-errors': true
          }, show: true });
  
          yield nightmare
          .goto('https://facebook.com/login')
          .wait(".inputtext._55r1.inputtext._1kbt.inputtext._1kbt")
          .type('input[name="email"]', user)
          .type('input[name="pass"]', pass)
          .click('button[name=login]')
          .wait(29000);
  
          var range = urlsID * 2000;
          var rangeStart = range - 2000;
          var urlsarray = arrayUrls.slice(rangeStart, range);
          for (var i = 0; i &lt; urlsarray.length; i++) {
                  count++;
                  console.log(count + " -&gt; " + proxy);
                  if (count &gt; 150){
                      yield nightmare.end();
                  }
                  yield nightmare
                  .goto("https://www.facebook.com/profile.php?id=" + urlsarray[i] + "&amp;sk=about&amp;section=living&amp;pnref=about")
                  .wait(1000);
                  var seqCheck = yield nightmare.exists(".captcha_interstitial");
                  var bloqCheck = yield nightmare.exists(".mvl.ptm.uiInterstitial.uiInterstitialLarge.uiBoxWhite");
                  if (seqCheck == true) {
                    console.log("Seqcheck");
                      yield nightmare.wait(29000);
                  }
                  if (bloqCheck == true) {
                    console.log("Blocked for a week" + user + proxy);
                    bloqNumber++;
                    console.log(bloqNumber);
                  if (bloqNumber &gt; 6) {
                    yield nightmare.end();
                  }
                    continue;
                  }
  
                  var location = yield nightmare.exists("._3pw9._2pi4._2ge8");
                  bloqNumber = 0;
                  console.log(location);
                  if (location == true) {
                    var getLocation = yield nightmare.evaluate(function() {
                                    var jsonObject = new Array();
                                    var links = document.getElementsByClassName('_3pw9 _2pi4 _2ge8');
                                    var numProfiles = links.length;
                                      for(var i = 0; i&lt; numProfiles; i++){
                                      var elem;
                                      try {
                                      elem = links[0].querySelector("._50f5._50f7 a").text;
                                        } catch (err) {
                                          var arrr = new Array('Hello', 'world');
                                          return arrr;
                                        }
                                      jsonObject.push(elem);
                                    }
                                    return jsonObject;
                                  });
                   var locationString = getLocation.join(" + ");
                   console.log(locationString + " -&gt; " + urlsarray[i]);
                     if (locationString.indexOf("Australia") !== -1 ||
                        locationString.indexOf("Queensland") !== -1 || 
                        locationString.indexOf("New South Wales") !== -1 || 
                        locationString.indexOf("Victoria") !== -1 ||
                        locationString.indexOf("Northern Territory") !== -1 || 
                        locationString.indexOf("South Australia") !== -1||
                        locationString.indexOf("Tasmania") !== -1 ||
                        locationString.indexOf("Sydney") !== -1 ||
                        locationString.indexOf("Adelaide") !== -1 ||
                        locationString.indexOf("Cairns") !== -1 ||
                        locationString.indexOf("Perth") !== -1 ||
                        locationString.indexOf("Melbourne") !== -1 ||
                        locationString.indexOf("Brisbane") !== -1 ||
                        locationString.indexOf("Bundaberg") !== -1 ||
                        locationString.indexOf("Canberra") !== -1 ||
                        locationString.indexOf("Newcastle") !== -1 ||
                        locationString.indexOf("Western Australia") !== -1 ) {
                      console.log("Im in australia");
  
                   var stringToPrint = urlsarray[i] + ", " + locationString + "\n";
                      fs.appendFile('pages.csv', stringToPrint.replace(/(\r\n|\n|\r)/gm,"") + "\n", function (err) {
                          console.log("a new entry");
                        });
                      }
                      } else {
                        console.log("It was false");
                      }
  
                  }
                  yield nightmare.end();
          }  
  
  fs.createReadStream('proxies.csv')
      .pipe(csv())
      .on('data', function (data) {
          var proxy = data[0];
          var user = data[1];
          var pass = data[2];
          var urlsID = data[3];
          console.log(urlsID);
          console.log(user);
          console.log(pass);
          vo(run(proxy, user, pass, urlsID)).then(out =&gt; console.log('out', out)).catch(error =&gt; console.log(error));
      }).on('end', function (data) {
      console.log('CSV reading finished.')
  });
  </code></pre>
  
  <p>Desired Outcome: 
  I want every time i get some kind of error that my thread is closing. </p>