diff --git a/src/index.ts b/src/index.ts
index ae358105fb..c68f617c09 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -17,7 +17,6 @@ import * as program from 'commander';
 import mongo from './db/mongodb';
 
 import Logger from './misc/logger';
-import ProgressBar from './misc/cli/progressbar';
 import EnvironmentInfo from './misc/environmentInfo';
 import MachineInfo from './misc/machineInfo';
 import serverStats from './daemons/server-stats';
@@ -87,10 +86,9 @@ async function masterMain() {
 
 	if (!program.disableClustering) {
 		await spawnWorkers(config.clusterLimit);
-		Logger.succ('All workers started');
 	}
 
-	Logger.info(`Now listening on port ${config.port} on ${config.url}`);
+	Logger.succ(`Now listening on port ${config.port} on ${config.url}`);
 }
 
 /**
@@ -168,28 +166,30 @@ function checkMongoDb(config: Config) {
 }
 
 function spawnWorkers(limit: number) {
+	Logger.info('Starting workers...');
+
 	return new Promise(res => {
 		// Count the machine's CPUs
 		const cpuCount = os.cpus().length;
 
 		const count = limit || cpuCount;
-
-		const progress = new ProgressBar(count, 'Starting workers');
+		let started = 0;
 
 		// Create a worker for each CPU
 		for (let i = 0; i < count; i++) {
 			const worker = cluster.fork();
+
 			worker.on('message', message => {
-				if (message === 'ready') {
-					progress.increment();
+				if (message !== 'ready') return;
+				started++;
+
+				// When all workers started
+				if (started == count) {
+					Logger.succ('All workers started');
+					res();
 				}
 			});
 		}
-
-		// On all workers started
-		progress.on('complete', () => {
-			res();
-		});
 	});
 }
 
diff --git a/src/misc/cli/progressbar.ts b/src/misc/cli/progressbar.ts
deleted file mode 100644
index 72496fdedc..0000000000
--- a/src/misc/cli/progressbar.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import { EventEmitter } from 'events';
-import * as readline from 'readline';
-import chalk from 'chalk';
-
-/**
- * Progress bar
- */
-export default class extends EventEmitter {
-	public max: number;
-	public value: number;
-	public text: string;
-	private indicator: number;
-
-	constructor(max: number, text: string = null) {
-		super();
-		this.max = max;
-		this.value = 0;
-		this.text = text;
-		this.indicator = 0;
-		this.draw();
-
-		const iclock = setInterval(() => {
-			this.indicator = (this.indicator + 1) % 4;
-			this.draw();
-		}, 200);
-
-		this.on('complete', () => {
-			clearInterval(iclock);
-		});
-	}
-
-	public increment(): void {
-		this.value++;
-		this.draw();
-
-		// Check if it is fulfilled
-		if (this.value === this.max) {
-			this.indicator = null;
-
-			cll();
-			process.stdout.write(`${this.render()} -> ${chalk.bold('Complete')}\n`);
-
-			this.emit('complete');
-		}
-	}
-
-	public draw(): void {
-		const str = this.render();
-		cll();
-		process.stdout.write(str);
-	}
-
-	private render(): string {
-		const width = 30;
-		const t = this.text ? `${this.text} ` : '';
-
-		const v = Math.floor((this.value / this.max) * width);
-		const vs = new Array(v + 1).join('*');
-
-		const p = width - v;
-		const ps = new Array(p + 1).join(' ');
-
-		const percentage = Math.floor((this.value / this.max) * 100);
-		const percentages = chalk.gray(`(${percentage} %)`);
-
-		let i: string;
-		switch (this.indicator) {
-			case 0: i = '-'; break;
-			case 1: i = '\\'; break;
-			case 2: i = '|'; break;
-			case 3: i = '/'; break;
-			case null: i = '+'; break;
-		}
-
-		return `${i} ${t}[${vs}${ps}] ${this.value} / ${this.max} ${percentages}`;
-	}
-}
-
-/**
- * Clear current line
- */
-function cll(): void {
-	readline.clearLine(process.stdout, 0); // Clear current text
-	readline.cursorTo(process.stdout, 0, null); // Move cursor to the head of line
-}