EDIT 2016-07-04(Since this question is getting popular): This is a bug in Chrome. Developers are actively working on a fix.
EDIT 2017-05-14<
I tried every solution and only this is working for me (chrome 53)
dialog { position: fixed; top: 50%; transform: translate(0, -50%); }