SQL Server not using all cores
The problem was with the VM provider.
Sql Server 2012 Web license states it's limited to 4 sockets or 16 cores, so if you want to use 16 cores you need a machine with 4 sockets that have 4 cores each.
In my case I had 6 sockets with one core each, that's why only 4 were usable.

Hope this helps future developers facing a similar problem.